Conversation
0ec6a44 to
f5cef26
Compare
- PayloadJobCancellation replaces single CancellationToken with
new_fcu/resolved/deadline/any tokens for deterministic cancellation
- Flashblock loop refactored to biased select! state machine
- Resolved gate prevents publishing flashblocks after getPayload
- Tracing spans: build_fallback, build_flashblock (with index/tx_count/
gas_used), execute_pool_txs, seal_block, state_root
- New metrics: payload_job_cancellation_{resolved,new_fcu,deadline,
complete,error}, flashblock_publish_suppressed_total
- CancellationReason enum with typed reason values
4ae8d72 to
628c35b
Compare
|
mostly non-blocking comments, LGTM |
da45de0 to
c13537b
Compare
akundaz
left a comment
There was a problem hiding this comment.
Looks pretty good! Left some comments, but nothing major
| cancellation: &super::cancellation::PayloadJobCancellation, | ||
| span: &tracing::Span, | ||
| ) { | ||
| let reason_str = match cancellation.reason() { |
There was a problem hiding this comment.
nit: would be nice to have a Display impl for CancellationReason and to use labels for the payload job cancellation metric instead of defining separate metrics
There was a problem hiding this comment.
I initially tried that but didn't found a way to define a single metric field in OpRBuilderMetrics with custom label.
There was a problem hiding this comment.
It's very awkward you can't put it in the struct. See https://github.com/flashbots/op-rbuilder/pull/388/changes for an example
|
Also, make sure the logs look nice in staging with the new spans. rollup-boost spans are a bit difficult to go through and we should avoid that friction |
Spans are gated behind telemetry flag, so it's more for local testing for now. There's plan to enable them in production when we have proper trace collector which should ensure it don't mess with logs and be useful. |
See (#394, #397, #398)
structured cancellation, select! state machine, tracing spans: